#ifndef USERREPOSITORY_H
#define USERREPOSITORY_H
#include "jsonconfigwriter.h"
#include <QString>
#include <QStringList>

/**
 * @brief UserRepository
 * 数据访问层，负责用户数据的持久化存取。
 * - 从全局 users.json 读取/写入用户
 * - 按用户保存/删除 UI 配置（隐藏控件列表）
 */
class UserRepository {
public:
    explicit UserRepository(const QString &uiPath = QString());

    /// 设置 UI 文件路径
    void setUiPath(const QString &uiPath);

    /// 加载全局用户列表（users.json）
    QStringList loadUsers() const;

    /// 添加用户并写入配置
    void addUser(const QString &username, const QStringList &hiddenCtrls);

    /// 删除用户
    void deleteUser(const QString &username);

private:
    QString m_uiPath;
    JsonConfigWriter *m_jsonconfigwriter;
};

#endif // USERREPOSITORY_H
